.NET 和 Ubuntu 概述 您所在的位置:网站首页 ubuntu 1604 upgrade 1804 .NET 和 Ubuntu 概述

.NET 和 Ubuntu 概述

#.NET 和 Ubuntu 概述| 来源: 网络整理| 查看: 265

Ubuntu 上的 .NET 概述 项目 01/24/2024

本文介绍如何在 Ubuntu 上安装 .NET。 Microsoft 包存储库包含 Ubuntu 上当前或以前支持的每个 .NET 版本。 从 Ubuntu 22.04 开始,Ubuntu 包源中提供某些版本的 .NET。 有关可用版本的详细信息,请参阅支持的发行版部分。

警告

建议选择来自单个存储库的 .NET 包。 请勿混合来自多个包存储库的 .NET 包,因为当应用尝试解析特定版本的 .NET 时,会导致问题。

方法 优点 缺点 包管理器(Microsoft 源) 始终有支持的版本。可立即提供补丁。包含依赖项。轻松删除。 需要注册 Microsoft 包存储库。预览版不可用。仅支持 x64 Ubuntu。 包管理器(Ubuntu 源) 通常提供最新版本。可立即提供补丁。包含依赖项。轻松删除。 可用的 .NET 版本因 Ubuntu 版本而异。预览版不可用。仅支持 x64 Ubuntu。 (除了 Ubuntu 23.04+ 以外,它还支持 Arm64) 脚本\手动提取 控制 .NET 的安装位置。预览版可用。 手动安装更新。手动安装依赖项。手动删除。 决定如何安装 .NET

当 Ubuntu 版本通过内置 Ubuntu 源为 .NET 提供支持时,Canonical 将提供对这些 .NET 版本的支持,并且这些版本可能针对不同的工作负载进行优化。 Microsoft 为 Microsoft 包存储库源中的包提供支持。

使用以下部分来确定应如何安装 .NET:

我使用的是 Ubuntu 22.04 或更高版本,我只需要 .NET 我使用的是低于 Ubuntu 22.04 的版本 我使用的是其他 Microsoft 包,例如 powershell、mdatp 或 mssql 我需要创建 .NET 应用 我需要在容器、云或持续集成场景中运行 .NET 应用 我的 Ubuntu 分发版不包含所需的 .NET 版本,或者我需要一个不支持的 .NET 版本 我需要安装预览版 我不需要使用 APT 我使用的是基于 Arm 的 CPU 我使用的是 Ubuntu 22.04 或更高版本,我只需要 .NET

通过 Ubuntu 源安装 .NET。 有关详细信息,请参阅以下页面:

在 Ubuntu 24.04 上安装 .NET。 在 Ubuntu 23.10 上安装 .NET。 在 Ubuntu 23.04 上安装 .NET。 在 Ubuntu 22.04 上安装 .NET。

重要

Canonical 提供的 .NET SDK 版本始终位于 .1xx 功能区段。 如果要使用较新的功能区段版本,请使用 Microsoft 源安装 SDK。 请务必查看 Linux 上的 .NET 包混合一文中的信息,了解在存储库源之间切换的含义。

如果要安装 Microsoft 存储库以使用其他 Microsoft 包(如 powershell、mdatp 或 mssql),则需要取消 Microsoft 存储库提供的 .NET 包的优先级。 有关如何取消包优先级的说明,请参阅我的 Linux 发行版提供 .NET 包,我想使用它们。

我使用的是低于 Ubuntu 22.04 的版本

请使用特定于版本的 Ubuntu 页上的说明。

20.04 (LTS) 18.04 (LTS) 16.04 (LTS)

有关 Ubuntu 版本支持的 .NET 版本的详细信息,请查看支持的发行版部分。 如果要安装不支持的版本,请参阅注册 Microsoft 包存储库。

我使用的是其他 Microsoft 包,例如 powershell、mdatp 或 mssql

如果 Ubuntu 版本通过内置 Ubuntu 源为 .NET 提供支持,则必须决定应安装 .NET 的源。 支持的发行版部分提供了一个表,其中列出了包源提供的 .NET 版本。

如果需要从 Ubuntu 源获取 .NET 包,则需要取消 Microsoft 存储库提供的 .NET 包的优先级。 有关如何取消包优先级的说明,请参阅我的 Linux 发行版提供 .NET 包,我想使用它们。

我需要创建 .NET 应用

对 SDK 使用与运行时相同的包源。 例如,如果你使用的是 Ubuntu 22.04 和 .NET 6,但不使用 .NET 7,则建议通过内置 Ubuntu 源安装 .NET。 但是,如果移动到 .NET 7(Canonical 未为 Ubuntu 22.04 提供),则应卸载 .NET 并通过 Microsoft 包存储库重新安装它。 有关详细信息,请参阅通过 Microsoft 包存储库注册并安装。 另外,请查看决定如何安装 .NET 部分中的其他建议。

我需要在容器、云或持续集成场景中运行 .NET 应用

如果 Ubuntu 版本提供所需的 .NET 版本,请从内置源安装它。 否则,请注册 Microsoft 包存储库,并从该存储库安装 .NET。 请查看支持的发行版部分中的信息。

如果所需的 .NET 版本不可用,请尝试使用 dotnet-install 脚本。

我的 Ubuntu 分发版不包含所需的 .NET 版本,或者我需要一个不支持的 .NET 版本

建议使用 APT 和 Microsoft 包存储库。 有关详细信息,请参阅注册并安装 Microsoft 包存储库部分。

我需要安装预览版

使用以下其中一种方式来安装 .NET:

使用 install-dotnet 脚本安装 .NET。 手动安装 .NET 我不需要使用 APT

如果需要自动安装,请使用 Linux 安装脚本。

如果要完全控制 .NET 安装体验,请下载 tarball 并手动安装 .NET。 有关详细信息,请参阅手动安装。

我使用的是基于 Arm 的 CPU

使用以下其中一种方式来安装 .NET:

使用 install-dotnet 脚本安装 .NET。 手动安装 .NET 支持的发行版

下表列出了当前支持的 .NET 版本以及支持它们的 Ubuntu 版本。 每个链接都转到特定的 Ubuntu 版本页,其中包含有关如何为该版本的 Ubuntu 安装 .NET 的具体说明。

Ubuntu 支持的 .NET 版本 在 Ubuntu 源中可用 在 Microsoft 源中可用 24.04 8.0 8.0 无 23.10 8.0、7.0、6.0 8.0、7.0、6.0 8.0、7.0、6.0 23.04 8.0、7.0、6.0 7.0、6.0 8.0、7.0、6.0 22.04 (LTS) 8.0、7.0、6.0 7.0、6.0 8.0、7.0、6.0、3.1 20.04 (LTS) 8.0、7.0、6.0 无 8.0、7.0。 6.0、5.0、3.1、2.1 18.04 (LTS) 7.0、6.0 无 7.0、 6.0、5.0、3.1、2.2、2.1 16.04 (LTS) 6.0 无 6.0、5.0、3.1、3.0、2.2、2.1、2.0

如果 Ubuntu 版本不受支持,则该版本不再支持 .NET。

以下 .NET 版本 ❌ 不再受到支持:

.NET 5 .NET Core 3.1 .NET Core 3.0 .NET Core 2.2 .NET Core 2.1 .NET Core 2.0 注册 Microsoft 包存储库

Microsoft 包存储库包含以前或当前受 Ubuntu 版本支持的所有 .NET 版本。 如果 Ubuntu 版本提供 .NET 包,则需要取消 Ubuntu 包的优先级并使用 Microsoft 存储库。 有关如何取消包优先级的说明,请参阅我需要不由 Linux 分发版提供的 .NET 版本。

重要

Microsoft 包存储库仅支持面向 x64 体系结构的 .NET 包。 对于 Arm 等其他体系结构,必须通过其他一些方式安装 .NET,例如,通过安装程序脚本,或通过手动安装。

预览版在 Microsoft 包存储库中不可用。 有关详细信息,请参阅安装预览版本。

注意

建议仅使用一个存储库来管理所有 .NET 安装。 如果以前使用 Ubuntu 存储库安装了 .NET,则必须清理 .NET 包的系统,并将 APT 配置为忽略 Ubuntu 源。 有关如何执行此操作的详细信息,请参阅我需要不由 Linux 分发版提供的 .NET 版本。

使用 APT 进行安装可通过几个命令来完成。 安装 .NET 之前,请运行以下命令,将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

打开终端并运行以下命令:

# Get OS version info source /etc/os-release # Download Microsoft signing key and repository wget https://packages.microsoft.com/config/$ID/$VERSION_ID/packages-microsoft-prod.deb -O packages-microsoft-prod.deb # Install Microsoft signing key and repository sudo dpkg -i packages-microsoft-prod.deb # Clean up rm packages-microsoft-prod.deb # Update packages sudo apt update

提示

以前的脚本是针对 Ubuntu 编写的,如果使用派生的分发版(例如 Linux Mint),它可能无法正常工作。 很可能不会为 $repo_version 变量分配正确的值,从而导致 wget 命令的 URI 无效。 此变量映射到要为其获取包的特定 Ubuntu 版本,例如 22.10 或 23.04。

可以使用 Web 浏览器并导航到 https://packages.microsoft.com/config/ubuntu/,查看哪些版本的 Ubuntu 可用作 $repo_version 值。

安装 .NET

注册 Microsoft 包存储库后,或者如果 Ubuntu 版本的默认源支持 .NET 包,则可以使用 sudo apt install 命令通过包管理器安装 .NET。 将 替换为要安装的 .NET 包的名称。 例如,若要安装 .NET SDK 8.0,请使用命令 sudo apt install dotnet-sdk-8.0。 下表列出了当前支持的 .NET 包:

产品 类型 程序包 8.0 ASP.NET Core 运行时 aspnetcore-runtime-8.0 8.0 .NET 运行时 dotnet-runtime-8.0 8.0 .NET SDK dotnet-sdk-8.0 7.0 ASP.NET Core 运行时 aspnetcore-runtime-7.0 7.0 .NET 运行时 dotnet-runtime-7.0 7.0 .NET SDK dotnet-sdk-7.0 6.0 ASP.NET Core 运行时 aspnetcore-runtime-6.0 6.0 .NET 运行时 dotnet-runtime-6.0 6.0 .NET SDK dotnet-sdk-6.0

如果要安装不受支持的 .NET 版本,请查看支持的发行版部分,了解该版本的 .NET 是否可用。 然后,替换要安装的 .NET 版本。 例如,若要安装 ASP.NET Core 2.1,请使用包名称 aspnetcore-runtime-2.1。

提示

如果不创建 .NET 应用,请安装 ASP.NET Core 运行时,因为它包括 .NET 运行时,还支持 ASP.NET Core 应用。

安装 .NET 后,某些环境变量会影响其运行方式。 有关详细信息,请参阅 .NET SDK 和 CLI 环境变量。

卸载 .NET

如果通过包管理器安装 .NET,请使用 apt-get remove 命令以相同的方式卸载:

sudo apt-get remove dotnet-sdk-6.0

有关详细信息,请参阅卸载 .NET。

安装预览版本

包存储库中未提供 .NET 的预览版和候选发布版本。 可通过下面其中一种方式安装 .NET 的预览版和候选发布版本:

使用 install-dotnet.sh 脚本安装 手动提取二进制文件 删除预览版本

使用包管理器管理 .NET 安装时,如果之前安装了预览版本,则可能会遇到冲突。 包管理器可能会将非预览版本解释为 .NET 的较早版本。 若要安装非预览版本,需要首先卸载预览版本。 有关如何卸载 .NET 的详细信息,请参阅如何删除 .NET 运行时和 SDK。

使用 APT 更新 .NET

如果通过包管理器安装 .NET,则可以使用 apt upgrade 命令升级包。 例如,以下命令升级最新版本的 dotnet-sdk-7.0 包:

sudo apt update sudo apt upgrade dotnet-sdk-7.0

提示

如果安装 .NET 后已升级过 Linux 分发版,可能需要重新配置 Microsoft 包存储库。 运行当前分发版本的安装说明,升级到相应的包存储库以进行 .NET 更新。

疑难解答

从 Ubuntu 22.04 开始,可能会遇到似乎只有一部分 .NET 可用的情况。 例如,已安装运行时和 SDK,但在运行 dotnet --info 时仅列出运行时。 此解决方案可与使用两个不同的包源有关。 内置 Ubuntu 22.04 和 Ubuntu 22.10 包源包含某些版本的 .NET,但不是全部版本,可能还从 Microsoft 源安装了 .NET。 有关如何解决此问题的详细信息,请参阅排查与 Linux 上缺少文件相关的 .NET 错误。

APT 问题

本部分提供有关使用 APT 安装 .NET 时可能会遇到的常见错误的信息。

找不到包

重要

使用包管理器从 Microsoft 包源安装 .NET 仅支持 x64 体系结构。 Microsoft 包源不支持其他体系结构,如 Arm。

有关在不使用包管理器的情况下安装 .NET 的详细信息,请参阅以下文章之一:

使用 install-dotnet 脚本安装 .NET。 手动安装 .NET。 找不到\无法安装某些包

说明

此信息仅适用于从 Microsoft 包源安装 .NET。

如果收到类似于“找不到包 {dotnet-package}”或“无法安装某些包”的错误消息,请运行以下命令。

以下命令组中有两个占位符。

{dotnet-package} 此项表示要安装的 .NET 包,如 aspnetcore-runtime-8.0。 它在以下 sudo apt-get install 命令中使用。

首先,尝试清除包列表:

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update

然后,再次尝试安装 .NET。 如果这不起作用,可使用以下命令运行手动安装:

如果使用的是 Ubuntu 23.10 或更高版本,请尝试以下命令:

# Define the OS version, name, and codename source /etc/os-release # Download the Microsoft keys sudo apt-get install -y gpg wget wget https://packages.microsoft.com/keys/microsoft.asc cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg # Add the Microsoft repository to the system's sources list wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list # Move the key to the appropriate place sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有